package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 排课对象 sys_class
 *
 * @author ruoyi
 * @date 2025-06-25
 */
public class SysClass extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date classDate;

    /** 开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期")
    private Date beginClassDate;

    /** 结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截至日期")
    private Date endClassDate;

    /** 时间段 */
    @Excel(name = "时间段")
    private Long classTime;

    /** 年级 */
    @Excel(name = "年级")
    private Long grade;

    /** 科目 */
    @Excel(name = "科目")
    private Long subjectId;

    /** 科目名称 */
    @Excel(name = "科目名称")
    private String subjectName;

    /** 教师 */
    @Excel(name = "教师")
    private Long teacherId;

    /** 教师名称 */
    @Excel(name = "教师名称")
    private String teacherName;

    /** 校区 */
    @Excel(name = "校区")
    private Long campusId;

    /** 校区名称 */
    @Excel(name = "校区名称")
    private String campusName;

    /** 最大人数 */
    @Excel(name = "最大人数")
    private Long maxNum;

    /** 排课明细 */
    @Excel(name = "排课明细")
    private List<SysClassLabel> sysClassLabelList;

    /** 状态 */
    @Excel(name = "状态")
    private Long status;

    private Long twoStatus;

    private Long threeStatus;

    private Long fourStatus;

    private Long fiveStatus;

    private Long sixStatus;

    private Long sevenStatus;

    /** 周数 */
    @Excel(name = "周数")
    private Long week;

    /** 合同明细主键 */
    @Excel(name = "合同明细主键")
    private Long contractLabelId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractCode;

    /** 时间段 */
    @Excel(name = "时间段")
    private String classTimeSlot;

    /** 课程表明细 */
    @Excel(name = "课程表明细")
    private SysClassLabel sysClassLabel;

    /** 课程表头主键 */
    @Excel(name = "课程表头主键")
    private Long classHeadId;

    @Excel(name = "主课表主键")
    private Long upClassId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerCode;

    /** 确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "确认时间")
    private Date confirmDate;

    /** 确认者 */
    @Excel(name = "确认者")
    private String confirmper;

    /** 课时 */
    @Excel(name = "课时")
    private Long classHour;

    /** 人数 */
    @Excel(name = "人数")
    private Long peopleNum;

    public Long getPeopleNum() {
        return peopleNum;
    }

    public void setPeopleNum(Long peopleNum) {
        this.peopleNum = peopleNum;
    }

    public Long getClassHour() {
        return classHour;
    }

    public void setClassHour(Long classHour) {
        this.classHour = classHour;
    }

    private String twoCustomerName;

    private String threeCustomerName;

    private String fourCustomerName;

    private String fiveCustomerName;

    private String sixCustomerName;

    private String sevenCustomerName;

    public Date getConfirmDate() {
        return confirmDate;
    }

    public void setConfirmDate(Date confirmDate) {
        this.confirmDate = confirmDate;
    }

    public String getConfirmper() {
        return confirmper;
    }

    public void setConfirmper(String confirmper) {
        this.confirmper = confirmper;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getContractCode() {
        return contractCode;
    }

    public void setContractCode(String contractCode) {
        this.contractCode = contractCode;
    }

    public Date getBeginClassDate() {
        return beginClassDate;
    }

    public void setBeginClassDate(Date beginClassDate) {
        this.beginClassDate = beginClassDate;
    }

    public Date getEndClassDate() {
        return endClassDate;
    }

    public void setEndClassDate(Date endClassDate) {
        this.endClassDate = endClassDate;
    }

    public Long getTwoStatus() {
        return twoStatus;
    }

    public void setTwoStatus(Long twoStatus) {
        this.twoStatus = twoStatus;
    }

    public Long getThreeStatus() {
        return threeStatus;
    }

    public void setThreeStatus(Long threeStatus) {
        this.threeStatus = threeStatus;
    }

    public Long getFourStatus() {
        return fourStatus;
    }

    public void setFourStatus(Long fourStatus) {
        this.fourStatus = fourStatus;
    }

    public Long getFiveStatus() {
        return fiveStatus;
    }

    public void setFiveStatus(Long fiveStatus) {
        this.fiveStatus = fiveStatus;
    }

    public Long getSixStatus() {
        return sixStatus;
    }

    public void setSixStatus(Long sixStatus) {
        this.sixStatus = sixStatus;
    }

    public Long getSevenStatus() {
        return sevenStatus;
    }

    public void setSevenStatus(Long sevenStatus) {
        this.sevenStatus = sevenStatus;
    }

    public Long getUpClassId() {
        return upClassId;
    }

    public void setUpClassId(Long upClassId) {
        this.upClassId = upClassId;
    }

    public String getTwoCustomerName() {
        return twoCustomerName;
    }

    public void setTwoCustomerName(String twoCustomerName) {
        this.twoCustomerName = twoCustomerName;
    }

    public String getThreeCustomerName() {
        return threeCustomerName;
    }

    public void setThreeCustomerName(String threeCustomerName) {
        this.threeCustomerName = threeCustomerName;
    }

    public String getFourCustomerName() {
        return fourCustomerName;
    }

    public void setFourCustomerName(String fourCustomerName) {
        this.fourCustomerName = fourCustomerName;
    }

    public String getFiveCustomerName() {
        return fiveCustomerName;
    }

    public void setFiveCustomerName(String fiveCustomerName) {
        this.fiveCustomerName = fiveCustomerName;
    }

    public String getSixCustomerName() {
        return sixCustomerName;
    }

    public void setSixCustomerName(String sixCustomerName) {
        this.sixCustomerName = sixCustomerName;
    }

    public String getSevenCustomerName() {
        return sevenCustomerName;
    }

    public void setSevenCustomerName(String sevenCustomerName) {
        this.sevenCustomerName = sevenCustomerName;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCampusName() {
        return campusName;
    }

    public void setCampusName(String campusName) {
        this.campusName = campusName;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public String getSubjectName() {
        return subjectName;
    }

    public void setSubjectName(String subjectName) {
        this.subjectName = subjectName;
    }

    public Long getClassHeadId() {
        return classHeadId;
    }

    public void setClassHeadId(Long classHeadId) {
        this.classHeadId = classHeadId;
    }

    public SysClassLabel getSysClassLabel() {
        return sysClassLabel;
    }

    public void setSysClassLabel(SysClassLabel sysClassLabel) {
        this.sysClassLabel = sysClassLabel;
    }

    public String getClassTimeSlot() {
        return classTimeSlot;
    }

    public void setClassTimeSlot(String classTimeSlot) {
        this.classTimeSlot = classTimeSlot;
    }

    public Long getContractLabelId() {
        return contractLabelId;
    }

    public void setContractLabelId(Long contractLabelId) {
        this.contractLabelId = contractLabelId;
    }

    public Long getWeek() {
        return week;
    }

    public void setWeek(Long week) {
        this.week = week;
    }

    public Long getStatus() {
        return status;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public List<SysClassLabel> getSysClassLabelList() {
        return sysClassLabelList;
    }

    public void setSysClassLabelList(List<SysClassLabel> sysClassLabelList) {
        this.sysClassLabelList = sysClassLabelList;
    }

    public Long getMaxNum() {
        return maxNum;
    }

    public void setMaxNum(Long maxNum) {
        this.maxNum = maxNum;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setClassDate(Date classDate)
    {
        this.classDate = classDate;
    }

    public Date getClassDate()
    {
        return classDate;
    }

    public void setClassTime(Long classTime)
    {
        this.classTime = classTime;
    }

    public Long getClassTime()
    {
        return classTime;
    }

    public void setGrade(Long grade)
    {
        this.grade = grade;
    }

    public Long getGrade()
    {
        return grade;
    }

    public void setSubjectId(Long subjectId)
    {
        this.subjectId = subjectId;
    }

    public Long getSubjectId()
    {
        return subjectId;
    }

    public void setTeacherId(Long teacherId)
    {
        this.teacherId = teacherId;
    }

    public Long getTeacherId()
    {
        return teacherId;
    }

    public void setCampusId(Long campusId)
    {
        this.campusId = campusId;
    }

    public Long getCampusId()
    {
        return campusId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("classDate", getClassDate())
                .append("classTime", getClassTime())
                .append("grade", getGrade())
                .append("subjectId", getSubjectId())
                .append("teacherId", getTeacherId())
                .append("campusId", getCampusId())
                .toString();
    }
}